Skip to content

feat(ogar-a2ui-frame): W1 — the addressed-surface wire frames#206

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/ogar-a2ui-frame-w1
Jul 14, 2026
Merged

feat(ogar-a2ui-frame): W1 — the addressed-surface wire frames#206
AdaWorldAPI merged 1 commit into
mainfrom
claude/ogar-a2ui-frame-w1

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

What

W1 of the screen-addressing charter (#204 + #205): ogar-a2ui-frame — the LE-first wire frames the a2ui-rs render target and the wasm fieldview client speak. The W0 repo gate opened this session (AdaWorldAPI/a2ui-rs minted, cloned, virgin main), so W1 is the buildable increment.

The frames

  • DownNodeDelta { key: [u8;16], mask_words: Vec<u64>, values: Vec<u8> }: the client resolves key → ClassView → template locally (the ClassView registry is the font of the desktop) and repaints only the masked positions. Values are ClassView-carved, never described on the wire — content-blind, like the 4+12 register.
  • UpActionInvoke { key, action_ordinal, args }: behavior travels by address (ordinal into the class's ActionDef set), never inline — charter trap T2 honored structurally.

Wide surfaces native (#205 made concrete)

The delta mask is explicit u64 words — no 64-field ceiling on the wire; the test proves positions ≥ 64 decode (node_delta_roundtrips_wide, position 133). RBAC (surface ∩ role, fail-closed) happens before framing; the frame is dumb transport.

Discipline

  • Firewall (ADR-022/023): to_le_bytes/from_le_bytes ARE the format; zero deps in the hot path; serde is a membrane-only feature (trap T3); #[forbid(unsafe_code)].
  • ogar-doc-ir load-gate discipline: closed FrameKind vocabulary + FRAME_VERSION gate — every decode failure is a refusal (wrong version / unknown kind / length lie / short mask), never a skip.

Verification

6 tests green (wide roundtrip, action roundtrip, 4 refusal gates); clippy -D warnings + fmt clean. Ledger status appended to D-A2UI-SCREEN-ADDRESSING in the same commit (board hygiene).

Next after merge: seed a2ui-rs (workspace + core consuming these frames via git dep), then W2 (RenderStream/ActionStream service shape).

Generated with Claude Code


Generated by Claude Code

The screen-addressing charter's W1 (docs/A2UI-SCREEN-ADDRESSING-PROPOSAL.md,
merged #204 + #205): the LE-first frames the a2ui-rs render target and the
wasm fieldview client speak.

Down (server->client): NodeDelta { key: [u8;16], mask_words: Vec<u64>,
values: Vec<u8> } — the client resolves key -> ClassView -> template locally
(the ClassView registry is the font of the desktop) and repaints only the
masked positions; values are ClassView-carved, never described on the wire
(content-blind, like the 4+12 register). Wide surfaces are NATIVE: explicit
u64 mask words, no 64-field ceiling — the #205 RBAC correction made concrete
(test proves positions >= 64 decode). RBAC (surface INTERSECT role,
fail-closed) happens BEFORE framing; the frame is dumb transport.

Up (client->server): ActionInvoke { key, action_ordinal, args } — behavior
travels by ADDRESS (ordinal into the class's ActionDef set), never inline
(charter trap T2).

Wire-truth per the Firewall (ADR-022/023): to_le_bytes/from_le_bytes ARE the
format; zero deps in the hot path; serde is a membrane-only feature (trap
T3); #![forbid(unsafe_code)]. Closed FrameKind vocabulary + FRAME_VERSION
gate, ogar-doc-ir discipline: every decode failure is a refusal (version /
kind / length-lie / short-mask), never a skip.

6 tests green; clippy -D warnings + fmt clean. Ledger: W0 repo gate OPEN
(a2ui-rs minted) + W1 CODED appended to D-A2UI-SCREEN-ADDRESSING.

Co-Authored-By: Claude <noreply@anthropic.com>
@cursor

cursor Bot commented Jul 14, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_4e80a4bf-4c2a-4831-90ea-0aea72098332)

@AdaWorldAPI AdaWorldAPI merged commit cc701ea into main Jul 14, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants